package com.css.fxfzxczh.modules.map.service;

import com.css.fxfzxczh.base.response.RestResponse;
import com.css.fxfzxczh.modules.fieldWorkManage.lnvestigationTaskMange.entity.InvestigationTask;
import com.css.fxfzxczh.modules.fieldWorkManage.surTaskManage.entity.SurTaskManage;
import com.css.fxfzxczh.modules.largeScreen.vo.IntensityMapVo;
import com.css.fxfzxczh.modules.map.entity.DisasterSeismicInfluence;
import com.css.fxfzxczh.modules.map.entity.DrawSeismicInfluence;
import com.css.fxfzxczh.modules.map.entity.SeismicInfluence;

import java.util.*;

/**
 * @author Zyt
 * @date 2023年05月24日  14:00
 */
public interface ShpDataService {

    //解析Shp文件--typeCode为zqfw时 是获取（划定评估子区页面）灾区范围数据；typeCode为disasterArea时 是获取（灾区范围页面）灾区范围
    public RestResponse parseShp(String fileIds, String typeCode) throws Exception;

    //根据事件ID、空间数据查询灾区范围列表（划定评估子区页面）
    public List<SeismicInfluence> getSeismicInfluenceList(String xsemId,String geom);

    //根据事件ID、空间数据查询灾区范围列表（灾区范围页面）
    public List<DisasterSeismicInfluence> getDisasterSeismicInfluenceList(String xsemId, String geom);

    //根据事件ID、空间数据查询灾区范围列表（地震烈度图绘制页面）
    public List<DrawSeismicInfluence> getDrawSeismicInfluenceList(String xsemId, String geom);

    //根据事件ID、空间数据查询子区任务列表
    public List<SurTaskManage> getSurTaskManageList(String xsemId, String geom,String type);

    //根据事件ID、空间数据查询调查任务列表
    public List<InvestigationTask> getInvTaskManageList(String xsemId, String geom);

    //获取字段说明
    public RestResponse getFileDesc(String typeCode2);

    //根据地震烈度和事件id查询灾区范围内的区县
    List<String> getCountyByIntensityAndXsemId(String s, String xsemId);

    void update(DrawSeismicInfluence drawSeismicInfluence);

    String getRemark(String xsemId);

    DrawSeismicInfluence findBySiId(String siId);

    //根据事件ID逻辑删除地震烈度图范围（地震烈度图绘制页面）
    public void deleteDrawSeismicInfluence(String xsemId);

    //根据事件ID、烈度逻辑删除地震烈度图范围（地震烈度图绘制页面）
    public void deleteDrawSeismicInfluenceByIntensity(String xsemId, String intensity);

    //根据ID逻辑删除地震烈度图范围（地震烈度图绘制页面）
    public void deleteDrawSeismicInfluenceById(String siId);

    //根据烈度保存地震烈度图（地震烈度图绘制页面）
    public String saveDrawSeismicInfluenceByIntensity(DrawSeismicInfluence drawSeismicInfluence);

    //计算全部烈度空间数据及面积（地震烈度图绘制页面）
    public void countAllDrawSeismicInfluenceGeom(String xsemId,boolean bool);

    //按6度带投影计算空间数据面积
    public String getAreaByGeomEPSG6(String geomText);

    //按3度带投影计算空间数据面积
    public String getAreaByGeomEPSG3(String geomText);

    List<IntensityMapVo> getDrawSeismicInfluence(String xsemId);
}
